import axios from 'axios'
import router from '@/router';
import { ElMessage } from 'element-plus';

//创建axios实例对象
const request = axios.create({
  baseURL: '/api',
  timeout: 600000
})


//axios的请求request拦截器
request.interceptors.request.use(
  (config) =>{

    //成功回调
    const loginUserStr = localStorage.getItem('loginUser');
    if(loginUserStr){

      //将字符串转换成JSON对象并获取其中的token,赋值给config.headers.token，给请求体添加上token
      config.headers.token =JSON.parse(loginUserStr).token;
    }
    return config;
  },
  (error) => { //失败回调
    return Promise.reject(error)
  } 
)





//axios的响应 response 拦截器
request.interceptors.response.use(
  (response) => { //成功回调
    return response.data
  },
  (error) => { 
    //失败回调

    if(error.response.status == 401){

      //提示错误信息
      ElMessage.error("用户未登录，请先登录")


      //跳转到登录页面
      //router只有在setup 中才能使用push 方法，所以router创建的实例对象需要导入
      router.push('/login');

    }
    return Promise.reject(error)
  }   
)

export default request